package chapter10.ClodeBlock;
//类什么时候被加载
//1.当new一个对象实例时
//2.当创建子类实例时，父类也会被加载，父类先加载，子类后加载
//3.调用类的静态成员时
public class CodeBlockDetail01 {
    public static void main(String[] args) {
           //case 1
          // new AA();
         //case 2
        // new BB();
        // case 3
// 静态代码块只会执行一次，因为类加载也只会有一次。
// 普通代码块创建一次实例就会执行一次,只使用静态成员普通代码块不会执行。

        //
        int n1 = new CC().n1;

    }
}
class AA{
    //静态代码块
    static {
        System.out.println("AA的静态代码被执行");
    };
}
class BB extends AA{
    static {
        System.out.println("BB的静态代码块被执行");
    }
}
class CC{
    public  static int n1 = 99;
    static {
        System.out.println("CC的静态代码块被执行");
    }
}